package com.yidu.ladder.route.controller;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.ladder.route.domain.BusCircuit;
import com.yidu.ladder.route.domain.BusCircuitVo;
import com.yidu.ladder.route.domain.BusStationVo;
import com.yidu.ladder.route.service.BusCircuitService;
import com.yidu.ladder.util.IDGenerator;

/**
 * 
 * @ClassName: BusCircuitController 
 * @Description: 车站路线控制器
 * @author: Panda
 * @date: 2020年1月1日 下午5:22:47
 */
@Controller
@RequestMapping(value = "/route/")
public class BusCircuitController {
	
	
	@Autowired
	private BusCircuitService busCircuitService;

	public BusCircuitService getBusCircuitService() {
		return busCircuitService;
	}

	public void setBusCircuitService(BusCircuitService busCircuitService) {
		this.busCircuitService = busCircuitService;
	}
	
	
	
	/**
	 * 
	* @Title: queryBusCircuitWithPage 
	* @Description: 带分页条件的查询所有路线信息方法 
	* @param busCircuitVo 路线包装实体类
	* @return Map<String,Object> 返回这个map给前台
	* @author Panda
	* @date 2020年1月6日下午4:38:22
	 */
	@ResponseBody
	@RequestMapping(value = "busCircuit",method = RequestMethod.GET)
	public Map<String, Object> queryBusCircuitWithPage(BusCircuitVo busCircuitVo){
		// 调用带分页条件的查询路线信息方法
		Map<String, Object> busCircuitMap = busCircuitService.queryBusCircuitWithPage(busCircuitVo);
		
		// 返回查询后的结果
		return busCircuitMap;
	}
	
	/**
	 * 
	* @Title: queryRoute 
	* @Description: 带条件的查询所有路线(产品)
	* @param busCircuitVo 路线实体包装类
	* @return Map<String,Object> 返回这个集合给前台
	* @author Panda
	* @date 2020年1月6日下午4:38:53
	 */
	@ResponseBody
	@RequestMapping(value = "queryRoute",method = RequestMethod.GET)
	public Map<String, Object> queryRoute(BusCircuitVo busCircuitVo){
		// 调用查询路线方法(产品)
		Map<String, Object> busCircuitMap = busCircuitService.queryRoute(busCircuitVo);

		// 返回查询后的结果
		return busCircuitMap;
	}
	
	
	/**
	 * 
	* @Title: queryBusCircuit 
	* @Description: 查询所有路线信息 
	* @param busCircuitVo 路线包装实体类
	* @return List<BusCircuit> 返回这个集合
	* @author Panda
	* @date 2020年1月6日下午4:39:35
	 */
	@ResponseBody
	@RequestMapping(value = "allBusCircuit",method = RequestMethod.GET)
	public List<BusCircuit> queryBusCircuit(BusCircuitVo busCircuitVo){
		// 调用查询所有路线信息方法
		List<BusCircuit> list = busCircuitService.queryBusCircuit(busCircuitVo);
		// 返回这个结果
		return list;
	}
	
	/**
	 * 
	* @Title: saveBusCircuit 
	* @Description: 添加路线方法
	* @param busCircuitVo 路线实体包装类
	* @return int 添加的条数
	* @author Panda
	* @date 2020年1月6日下午4:40:04
	 */
	@ResponseBody
	@RequestMapping(value = "busCircuit",method = RequestMethod.POST)
	public int saveBusCircuit(BusCircuitVo busCircuitVo) {
		// 自动生成需要添加的路线id
		busCircuitVo.setCircuitId(IDGenerator.getId());
		// 条件添加路线方法
		int result = busCircuitService.saveBusCircuit(busCircuitVo);
		// 返回这个结果
		return result;
	}
	
	
	/**
	 * 
	* @Title: deleteBusStationById 
	* @Description: 根据id删除路线信息
	* @param circuitId 路线id
	* @return int 删除的条数
	* @author Panda
	* @date 2020年1月6日下午4:41:54
	 */
	@ResponseBody
	@RequestMapping(value = "busCircuit/{circuitId}",method = RequestMethod.DELETE)
	public int deleteBusStationById(@PathVariable("circuitId") String circuitId) {
		// 执行根据id删除汽车站方法
		int result = busCircuitService.deleteBusCircuitById(circuitId);
		
		// 返回执行根据id删除汽车站的结果
		return result;
	}
	/**
	 * 
	* @Title: frozenORrecoverBusCircuit 
	* @Description: 冻结或还原状态方法
	* @param busCircuitIds 路线id
	* @param useable 状态
	* @return String 返回一个字符串给前台
	* @author Panda
	* @date 2020年1月6日下午4:32:23
	 */
	@ResponseBody
	@RequestMapping(value="busCircuit/{circuitId}/{useable}",method=RequestMethod.DELETE)
	public String frozenORrecoverBusCircuit(@PathVariable("circuitId") String busCircuitIds, @PathVariable("useable") String useable) {
		// 调用执行冻结或还原方法
		boolean result = busCircuitService.frozenOrRecoveBusCircuit(busCircuitIds, useable);
		// 判断结果是否为false
		if(result==false) {
			// 返回一个fail给前台
			return "fail";
		}
		// 返回一个success给前台
		return "success";
	}
	/**
	 * 
	* @Title: updateBusCircuitById 
	* @Description: 根据id修改路线信息
	* @param busCircuitVo 路线实体包装类
	* @return int 修改的条数
	* @author Panda
	* @date 2020年1月6日下午4:42:22
	 */
	@ResponseBody
	@RequestMapping(value = "busCircuit",method=RequestMethod.PUT)
	public int updateBusCircuitById(BusCircuitVo busCircuitVo) {
		
		// 调用执行根据id修改路线信息方法
		int result = busCircuitService.updateBusCircuitById(busCircuitVo);
		// 返回这个结果
		return result;
	}
}
